package q2180_countEven;

public class Solution {
    /*
    这个问题的核心在于 每次数字进入到一个新的10循环 此时就变为奇数的各位和变成偶数/偶数的各位和变成偶数
    交替进行
    例如 从一开始的 2 4 6 8 ——> 11 13 15 17 19 ——> 20 22 24 26 28
    所以不考虑给的数字的最后一个 % 10 的余数 那么剩下的就是 / 10 * 5 也就是十个里面有一半
    所以直接返回num / 2
    唯一要考虑的是这个余数处在了哪一个交替循环的过程中？是奇数还是偶数所处在的循环
    这里直接用了最简单的方法
    例如2223 各位数字和是9 此时发现这个余数处于一个 偶数的各位和是偶数 的10循环下
    此时就要-1 然后num / 2
     */
    public int countEven(int num) {
        if (((num / 1000) + (num / 100) + (num / 10) + num) % 2 != 0) num -= 1;
        return num / 2;
    }
}
